perm filename CODE4.BKP[XX,LCS] blob sn#208655 filedate 1976-03-26 generic text, type T, neo UTF8
00100			TITLE ITMSUB
00900	;	00300	      SUBROUTINE ITMSUB
01200	;	00400	      IMPLICIT INTEGER(A-Q,S-Z)
01400	;	00500	      REAL DIS,DISX,HGT,POS,CENTR,STFF,HGT1
01600	;	00600	      COMMON/STF/RSTFAC(-3/4),RSTJ2/MIN/MINI,RMINI
01800	;	00700	      COMMON R2,JA,CENTR,J2,RJQ(20),JQ(16),RE,RF,RG,RH/BM/RA,RC,RJY
02000	;	00800	      COMMON/POSI/STFF(-3/4),JJ2,POS/PLTR/PLT,RHT,DIS
02200	;	00900	      COMMON/ALF/QQ(3),RST7,RST18,R3Q,JY,RD,RX,RW,RJX,RJ,L,K,
02300	;	01000	     1 RJA,YY,DISX,HGT,RZ,INP(53)
02500	;	01100	      COMMON/DAT/RACNT(65),RDOT(17),XAC(7),RNOTE(22),RACCI(22),NACCI(3)
02700	;	01200	      EQUIVALENCE (J3,JQ(1)),(J4,JQ(2)),(J5,JQ(3)),(R5,RJQ(3)),(R11,
02800	;	01300	     1RJQ(9)),(R6,RJQ(4)),(J7,JQ(5)),(J8,JQ(6)),(J9,JQ(7)),(J10,JQ(8))
02900	;	01400	     1,(J11,JQ(9)),(J6,JQ(4)),(R9,RJQ(7)),(R8,RJQ(6)),(R3,RJQ(1))
03000	;	01500	     1 ,(R7,RJQ(5)),(R4,RJQ(2)),(R9,RJQ(7)),(R10,RJQ(8)),(RX3,RJQ(20))
03200	;	01600	      DATA R14/14.54/,RTF/3.0/,RHGT/48.0/,R2HGT/96.0/,RBM/.83/
03300	;	01700	     1,RDBR/ 3.5/,RBR/.33/,RBX/ 7.0/
03500	ITMSUB:	0	;01800	C  RDBR IS SPACER FOR DBL BAR.
03900	;	02000	      RST7=RSTJ2*7.
04000	      	MOVSI 	3,203700
04100	      	FMPR  	3,STF+=8 
04200	      	MOVEM 	3,ALF+3  
04400	;				02100	      RST18=RSTJ2*18.
04500	      	MOVSI 	02,205440
04600		FMPR 2,STF+=8
04700	      	MOVEM 	02,ALF+4 
04900	;				02200	C  TO COMPENSATE FOR NOTE #3 COMING AT POS=0
05300	;				02400	      R3Q=R3
     

00400	      	MOVE  	02,.COMM.+4    
00500	      	MOVEM 	02,ALF+5         ;	C   NEXT DRAWS STRAIGHT LINES
01100	;				02700	      RD=R4*RST7
01300	      	FMPR  	3,.COMM.+5    
01400	      	MOVEM 	3,ALF+7    
01600	;				02800	      RA=0
01700	      	SETZM 	BM    
01900	;				02900	      RX=RTF*RSTJ2+POS
02000	      	MOVE  	02,[3.0]   
02100	      	FMPR  	02,STF+=8 
02200	      	FADR  	02,POSI+=9   
02300	      	MOVEM 	02,ALF+=8    
02500	;  SOMEDAY ADD < RDIS=1./DIS >  TO REPLACE ALL 1./DIS'S
02700	;				03010	      J10=J10*DIS*RSTJ2
02800		MOVE 4,.COMM.+=31
02900		TLC 4,232000
03000		FADR 4,4
03100		FMPR 4,PLTR+2
03200		FMPR 4,STF+=8
03300		JSA 16,IFIX
03400		JUMP 4
03500	      	MOVEM 	0,J10   
03700	; THICKNESS DEPENDS ON FINAL SIZE FACTOR (DIS) AND STAFF SIZE.(???!!)
03900	;				03100	      IF(J5.EQ.50)GO TO 300
04000	      	MOVEI 	02,62
04100	      	CAMN  	02,.COMM.+=26    
04200	      	JRST  	I300            ;  50 IS FOR CRESC., DECRESC. AND BOXES
04600	;				03300	      IF(R6.NE.0)GO TO 401
04700		SKIPN .COMM.+7
04800		SKIPE .COMM.+=28
04900		JRST I401         ;   IF(J7.NE.0)GO TO 401
     

00400	;				03500	C  FOR BAR LINES
00600	;				03600	4000  JA=44
00700		MOVEI 	02,54
00800	      	MOVEM 	02,.COMM.+1 ;CODE # IS CHNGD SO BAR LINES WON'T AFFECT MAX. HGT.
01200	;         ↑↑↑↑↑↑↑↑↑ FOR VERTICAL WIGGLE (P6=0, P7=-1)
01400	;				03900	      DBR=0
01500	      	SETZM 	DBR#
01700	;				04000	      IF(J4.LT.1000)GO TO 400
01800	      	MOVEI 	02,1750
01900	      	CAMLE 	02,.COMM.+=25    
02000	      	JRST  	I400  
02100	;  J4=1001 = DBL BAR,  =1401 = DBL BAR WITH RT. ONE HEAVY: J5=1=DOTS ADDED
03000	;				04500	      DBR=J4/1000
03100	      	MOVE  	02,.COMM.+=25    
03200	      	IDIVI 	02,1750
03300	      	MOVEM 	02,DBR   
03400	
03500		MOVEM 3,.COMM.+=25       ;	04600	      J4=J4-DBR*1000
03600	;				04700	C DBR=1 HEAVY BAR IS ON R
04300	;				04800	9400  RD=RDBR+RDBR*RSTJ2
04400	I9400:	MOVE  	1,[3.5]  
04500	      	FMPR  	1,STF+=8 
04600	      	FADR  	1,[3.5]  
04700	      	MOVEM 	1,ALF+7         ;  TO SPACE THIN BAR FROM HEAVY
05100	;				05000	      IF(J5.EQ.0)GO TO 400
05200	      	MOVE  	02,.COMM.+=26    
05300		JUMPE 2,I400
     

00500	;				05100	C  NEXT ADDS REPEAT DOTS TO DBL BAR.
00700	;				05200	      L=J4
00800	      	MOVE  	3,.COMM.+=25    
00900	      	MOVEM 	3,ALF+=12     
01100	;				05300	      RJ=L/100
01300	      	IDIVI 	3,144
01400		TLC 3,232000
01500		FADR 3,3	     ;	      IF(RJ.EQ.0)RJ=6.*RSTJ2
02000	      	JUMPN 	3,.+3    
02100	      	MOVSI 	3,203600
02200	      	FMPR  	3,STF+=8 
02300	      	MOVEM 	3,ALF+=11        ; HEAVY BAR WILL BE 5 LINES WIDE.
02800	;				05600	      RZ=R3
02900	      	MOVE  	1,.COMM.+4    
03000	      	MOVEM 	1,ALF+=18    
03200	;				05700	      J4=0
03300	      	SETZM 	J4              ;  MUST BE 0 FOR DOTS IN 'NOTWRT'
03700	;				05900	      IF(DBR.EQ.0)DBR=J5
03900	      	JUMPN 	02,.+3   	; J5 IS IN 2 YET!
04000	      	MOVE  	02,.COMM.+=26    
04100	      	MOVEM 	02,DBR   
04400	;				06000	      J5=0
04500	      	SETZM .COMM.+=26        ; J5=1 RPT ↑, =2 RPT ↑, =3 RPT ↑
04900	;				06200	      RJA=RD*2.
05000	      	MOVE  	1,ALF+7    
05100	      	FSC   	1,1
05200	      	MOVEM 	1,ALF+=14   
     

00400	;				06300	C  TO SPACE DOTS, NOT ACCURATE FOR VERY SMALL OR VERY LARGE SIZE FACTORS
00500	
00600	;				06400	      JY=DBR
00700	      	MOVE  	02,DBR   
00800	      	MOVEM 	02,JY    
00900	
01000	;				06500	      IF(DBR.LT.2)GO TO 8400
01100	      	MOVEI 	02,2
01200	      	CAMLE 	02,DBR   
01300	      	JRST  	8I400 
01400	
01500	;				06600	      R3=RJA+RJ+RZ
01600	      	MOVE  	02,ALF+=11    
01700	      	FADR  	02,ALF+=18    
01800	      	FADR  	02,ALF+=14   
01900	      	MOVEM 	02,.COMM.+4    
02000	
02100	;				06700	7400  DO 3400 K=J2,MOD(L,100)+J2-1
02200	7I400 	MOVNI 	02,1
02300	      	ADD   	02,J2    
02400	      	JSA   	16,MOD   
02500	      	ARG   	00,ALF+=12     
02600	      	ARG   	00,CONST.
02700	      	ADD   	02,0
02800	      	MOVEM 	02,TEMP. 
02900	      	MOVE  	15,J2    
03000	4M    	MOVEM 	15,K     
03100	5M    	BLOCK	0
03200	
03300	;				06800	      RSTJ2=RSTFAC(K)
03400	      	MOVE  	02,RSTFAC+3(15)
03500	      	MOVEM 	02,STF+=8 
03600	
03700	;				06900	      POS=STFF(K)
03800	      	MOVE  	02,STFF  +3(15)
03900	      	MOVEM 	02,POSI+=9   
04000	
04100	;				07000	      R4=6
04200	      	MOVSI 	02,203600
04300	      	MOVEM 	02,.COMM.+5    
04400	
04500	;				07100	      CALL CENTX
04600	      	JSA   	16,CENTX 
04700	
04800	;				07200	C  SPACES DOTS OUT FROM BAR
04900	
05000	;				07300	      CALL RDRAW(1,17.0,ALF+7OT,STF+=8,.COMM.+4,CENTR+RSTJ2,STF+=8)
05100	      	MOVE  	02,STF+=8 
05200	      	FADR  	02,CENTR 
05300	      	MOVEM 	02,%TEMP.
     

00400	      	JSA   	16,RDRAW 
00500	      	ARG   	00,CONST.+1
00600	      	ARG   	02,CONST.+2
00700	      	ARG   	02,ALF+7OT  
00800	      	ARG   	02,STF+=8 
00900	      	ARG   	02,.COMM.+4    
01000	      	ARG   	02,%TEMP.
01100	      	ARG   	02,STF+=8 
01200	
01300	;				07400	C  GO GET THE DOT
01400	
01500	;				07500	      R4=8
01600	      	MOVSI 	02,204400
01700	      	MOVEM 	02,.COMM.+5    
01800	
01900	;				07600	      CALL CENTX
02000	      	JSA   	16,CENTX 
02100	
02200	;				07700	3400  CALL RDRAW(1,17.0,ALF+7OT,STF+=8,.COMM.+4,CENTR+RSTJ2,STF+=8)
02300	3I400 	MOVE  	02,STF+=8 
02400	      	FADR  	02,CENTR 
02500	      	MOVEM 	02,%TEMP.
02600	      	JSA   	16,RDRAW 
04600	8I400 	MOVE  	02,ALF+=18    
04700	      	FSBR  	02,ALF+=14   
04800	      	MOVE  	03,STF+=8 
04900	      	FSC   	03,2
05000	      	FSBR  	02,3
05100	      	MOVEM 	02,.COMM.+4    
05200	
05300	;				08100	      GO TO 7400
     

00400	      	JRST  	7I400 
00500	
00600	;				08200	C  DO I NEED ANY MORE RESETS????
00700	
00800	;				08300	4400  J4=L
00900	4I400 	MOVE  	02,ALF+=12     
01000	      	MOVEM 	02,.COMM.+=25    
01100	
01200	;				08400	      J7=RJ*DIS
01300	      	MOVE  	02,DIS   
01400	      	FMPR  	02,ALF+=11    
01500	      	JSA   	16,IFIX  
01600	      	ARG   	00,2
01700	      	MOVEM 	00,.COMM.+=28    
01800	
01900	;				08500	      GO TO 5400
02000	      	JRST  	5I400 
02100	
02200	;				08600	400   IF(J5.NE.0)GO TO 9400
02300	I400: 	MOVE  	02,.COMM.+=26    
02400	      	JUMPN 	02,I9400 
02500	
02600	;				08700	      K=J4/100
02700	      	MOVE  	02,.COMM.+=25    
02800	      	IDIVI 	02,144
02900	      	MOVEM 	02,K     
03000	
03100	;				08800	C  K IS FOR SPACING OF THIN BAR IN HEAVY-THIN ORDER
03200	
03300	;				08900	      J7=K*DIS
03400	      	JSA   	16,FLOAT 
03500	      	ARG   	00,K     
03600	      	FMPR  	00,DIS   
03700	      	MOVEM 	00,%TEMP.
03800	      	JSA   	16,IFIX  
03900	      	ARG   	00,%TEMP.
04000	      	MOVEM 	00,.COMM.+=28    
04100	
04200	;				09000	C  J7=NUM OF STROKES -- BASED ON FINAL SIZE FACTOR (DIS)
04300	
04400	;				09100	5400  L=MOD(J4,100)
04500	5I400 	JSA   	16,MOD   
04600	      	ARG   	00,.COMM.+=25    
04700	      	ARG   	00,CONST.
04800	      	MOVEM 	00,ALF+=12     
04900	
05000	;				09200	      IF(L.EQ.0)L=1
05100	      	MOVE  	02,ALF+=12     
05200	      	JUMPN 	02,6M    
05300	      	MOVEI 	02,1
     

00400	      	MOVEM 	02,ALF+=12     
00500	6M    	BLOCK	0
00600	
00700	;				09300	      L=L+J2-1
00800	      	MOVNI 	02,1
00900	      	ADD   	02,ALF+=12     
01000	      	ADD   	02,J2    
01100	      	MOVEM 	02,ALF+=12     
01200	
01300	;				09400	C J4=401 MAKES 4X THICK BARLINE - ONE STAFF
01400	
01500	;				09500	      RA=RTF
01600	      	MOVE  	02,[3.0]   
01700	      	MOVEM 	02,BM    
01800	
01900	;				09600	      IF(L.LE.4)GO TO 2400
02000	      	MOVEI 	02,4
02100	      	CAML  	02,ALF+=12     
02200	      	JRST  	2I400 
02300	
02400	;				09700	      L=4
02500	      	MOVEI 	02,4
02600	      	MOVEM 	02,ALF+=12     
02700	
02800	;				09800	      RA=300.
02900	      	MOVSI 	02,211454
03000	      	MOVEM 	02,BM    
03100	
03200	;				09900	C FOR EXTENDING BARS ABOVE STAFF 4
03300	
03400	;				10000	2400  RY=RSTFAC(L)
03500	2I400 	MOVE  	03,ALF+=12     
03600	      	MOVE  	02,RSTFAC+3(3)
03700	      	MOVEM 	02,RY    
03800	
03900	;				10100	      RZ=R3Q
04000	      	MOVE  	02,ALF+5   
04100	      	MOVEM 	02,ALF+=18    
04200	
04300	;				10200	C  SAVE IT FOR DBL RPT BAR.
04400	
04500	;				10300	      RY=STFF(L)+(RA+56.)*RY
04600	      	MOVSI 	02,206700
04700	      	FADR  	02,BM    
04800	      	FMPR  	02,RY    
04900	      	MOVE  	03,ALF+=12     
05000	      	FADR  	02,STFF  +3(3)
05100	      	MOVEM 	02,RY    
05200	
05300	;				10400	1400  RA=1
     

00400	      	MOVEM 	02,ALF+=12     
00500	6M    	BLOCK	0
00600	
00700	;				09300	      L=L+J2-1
00800	      	MOVNI 	02,1
00900	      	ADD   	02,ALF+=12     
01000	      	ADD   	02,J2    
01100	      	MOVEM 	02,ALF+=12     
01200	
01300	;				09400	C J4=401 MAKES 4X THICK BARLINE - ONE STAFF
01400	
01500	;				09500	      RA=RTF
01600	      	MOVE  	02,[3.0]   
01700	      	MOVEM 	02,BM    
01800	
01900	;				09600	      IF(L.LE.4)GO TO 2400
02000	      	MOVEI 	02,4
02100	      	CAML  	02,ALF+=12     
02200	      	JRST  	2I400 
02300	
02400	;				09700	      L=4
02500	      	MOVEI 	02,4
02600	      	MOVEM 	02,ALF+=12     
02700	
02800	;				09800	      RA=300.
02900	      	MOVSI 	02,211454
03000	      	MOVEM 	02,BM    
03100	
03200	;				09900	C FOR EXTENDING BARS ABOVE STAFF 4
03300	
03400	;				10000	2400  RY=RSTFAC(L)
03500	2I400 	MOVE  	03,ALF+=12     
03600	      	MOVE  	02,RSTFAC+3(3)
03700	      	MOVEM 	02,RY    
03800	
03900	;				10100	      RZ=R3Q
04000	      	MOVE  	02,ALF+5   
04100	      	MOVEM 	02,ALF+=18    
04200	
04300	;				10200	C  SAVE IT FOR DBL RPT BAR.
04400	
04500	;				10300	      RY=STFF(L)+(RA+56.)*RY
04600	      	MOVSI 	02,206700
04700	      	FADR  	02,BM    
04800	      	FMPR  	02,RY    
04900	      	MOVE  	03,ALF+=12     
05000	      	FADR  	02,STFF  +3(3)
05100	      	MOVEM 	02,RY    
05200	
05300	;				10400	1400  RA=1
05700	1I400 	MOVSI 	02,201400
05800	      	MOVEM 	02,BM    
05900	
06000	;				10500	      IF(PLT.GE.0)GO TO 140
06100	      	MOVE  	02,PLT   
06200	      	JUMPGE	02,140P  
06300	
06400	;				10600	      J7=J7+1
06500	      	AOS   	J7    
06600	
06700	;				10700	      RA=1./DIS
06800	      	MOVSI 	02,201400
06900	      	FDVR  	02,DIS   
07000	      	MOVEM 	02,BM    
07100	
07200	;				10800	C  BAR LINES PLOT AS DOUBLE THICKNESS
07300	
07400	;				10900	140   RJX=R3Q
07500	140P  	MOVE  	02,ALF+5   
07600	      	MOVEM 	02,ALF+=11X   
07700	
07800	;				11000	42    CALL LINES(R3Q,ALF+=8,3)
07900	42P   	JSA   	16,ALF+=12INES 
08000	      	ARG   	02,ALF+5   
08100	      	ARG   	02,ALF+=8    
08200	      	ARG   	00,CONST.+3
08300	
08400	;				11100	      RJ=-1.
08500	      	MOVN  	02,CONST.+4
08600	      	MOVEM 	02,ALF+=11    
08700	
08800	;				11200	      RW=RY
08900	      	MOVE  	02,RY    
09000	      	MOVEM 	02,RW    
09100	
09200	;				11300	406   CALL LINES(RJX,RY,2)
09300	406P  	JSA   	16,ALF+=12INES 
09400	      	ARG   	02,ALF+=11X   
09500	      	ARG   	02,RY    
09600	      	ARG   	00,CONST.+5
09700	
09800	;				11400	      IF(J10.EQ.0)GO TO 411
09900	      	MOVE  	02,J10   
10000	      	JUMPE 	02,411P  
10100	
10200	;				11500	C  P10 WILL THICKEN VERTICAL (OR MOSTLY VERTICAL) LINES.
10300	
10400	;				11600	      J7=J10
10500	      	MOVE  	02,J10   
10600	      	MOVEM 	02,.COMM.+=28    
     

00500	;				11700	      J10=0
00600	      	SETZM 	J10   
00700	
00800	;				11800	      RA=1./DIS
00900	      	MOVSI 	02,201400
01000	      	FDVR  	02,DIS   
01100	      	MOVEM 	02,BM    
01200	
01300	;				11900	411   IF(J7.GT.0)GO TO 409
01400	411P  	MOVE  	02,.COMM.+=28    
01500	      	JUMPG 	02,409P  
01600	
01700	;				12000	      IF(DBR.LE.0)RETURN
01800	      	MOVE  	02,DBR   
01900	      	JUMPG 	02,7M    
02000	      	JRST  	8M    
02100	7M    	BLOCK	0
02200	
02300	;				12100	      RY=RW
02400	      	MOVE  	02,RW    
02500	      	MOVEM 	02,RY    
02600	
02700	;				12200	CK	R3Q=R3Q-RDBR
02800	
02900	;				12300	      RA=RZ-RD
03000	      	MOVN  	02,ALF+7    
03100	      	FADR  	02,ALF+=18    
03200	      	MOVEM 	02,BM    
03300	
03400	;				12400	      IF(DBR.NE.1)RA=RJX+RD-1.
03500	      	MOVEI 	02,1
03600	      	CAMN  	02,DBR   
03700	      	JRST  	9M    
03800	      	MOVN  	02,CONST.+4
03900	      	FADR  	02,ALF+7    
04000	      	FADR  	02,ALF+=11X   
04100	      	MOVEM 	02,BM    
04200	9M    	BLOCK	0
04300	
04400	;				12500	      DBR=DBR-2
04500	      	MOVNI 	02,2
04600	      	ADDM  	02,DBR   
04700	
04800	;				12600	      R3Q=RA
04900	      	MOVE  	02,BM    
05000	      	MOVEM 	02,ALF+5   
05100	
05200	;				12700	      GO TO 1400
05300	      	JRST  	1I400 
     

00500	;				12800	CC411	IF(J7.LE.0)RETURN
00600	
00700	;				12900	C  FOR 'HEAVY' LINE.
00800	
00900	;				13000	409   RJX=RJX+RA
01000	409P  	MOVE  	02,BM    
01100	      	FADRM 	02,ALF+=11X   
01200	
01300	;				13100	      CALL LINES(RJX,RY,2)
01400	      	JSA   	16,ALF+=12INES 
01500	      	ARG   	02,ALF+=11X   
01600	      	ARG   	02,RY    
01700	      	ARG   	00,CONST.+5
01800	
01900	;				13200	      J7=J7-1
02000	      	SOS   	J7    
02100	
02200	;				13300	      RY=RW
02300	      	MOVE  	02,RW    
02400	      	MOVEM 	02,RY    
02500	
02600	;				13400	      IF(RJ)RY=RX
02700	      	MOVE  	02,ALF+=11    
02800	      	JUMPGE	02,10M   
02900	      	MOVE  	02,ALF+=8    
03000	      	MOVEM 	02,RY    
03100	10M   	BLOCK	0
03200	
03300	;				13500	      RJ=-RJ
03400	      	MOVNS 	00,ALF+=11    
03500	
03600	;				13600	      GO TO 406
03700	      	JRST  	406P  
03800	
03900	;				13700	CC43	IF(RA.LE.0)RETURN
04000	
04100	;				13800	C   HOW IS RA.NE.0?
04200	
04300	;				13900	C  DRAWS BAR LINES. J4>0 CAUSES FULL LINE.
04400	
04500	;				14000	CC403	RA=RA-3.72
04600	
04700	;				14100	CC	R3Q=R3Q+22
04800	
04900	;				14200	CC	RJX=RJX+22
05000	
05100	;				14300	C   DO ABOVE NEED *RSTJ2? ************
05200	
05300	;				14400	C **** BASED ON '596' ****
     

00900	;				14700	C  FOR CRESC., DECRESC.
01000	
01100	;				14800	300   IF(R7.EQ.0)R7=2.3
01200	I300: 	MOVE  	02,R7    
01300	      	JUMPN 	02,11M   
01400	      	MOVE  	02,CONST.+6
01500	      	MOVEM 	02,R7    
01600	11M   	BLOCK	0
01700	
01800	;				14900	      IF(R7.EQ.-1.)R7=-2.3
01900	      	MOVN  	02,CONST.+4
02000	      	CAME  	02,R7    
02100	      	JRST  	12M   
02200	      	MOVN  	02,CONST.+6
02300	      	MOVEM 	02,R7    
02400	12M   	BLOCK	0
02500	
02600	;				15000	      RA=ABS(R7/2.0)*RST7
02700	      	MOVE  	02,R7    
02800	      	FSC   	02,777777
02900	      	MOVEM 	02,%TEMP.
03000	      	JSA   	16,ABS   
03100	      	ARG   	02,%TEMP.
03200	      	FMPR  	00,ALF+3  
03300	      	MOVEM 	00,BM    
03400	
03500	;				15100	C   AMOUNT OF SPREAD
03600	
03700	;				15200	      RJ=R3Q
03800	      	MOVE  	02,ALF+5   
03900	      	MOVEM 	02,ALF+=11    
04000	
04100	;				15300	      RX=RX-RST18+RD
04200	      	MOVN  	02,ALF+4 
04300	      	FADR  	02,ALF+7    
04400	      	FADRM 	02,ALF+=8    
04500	
04600	;				15400	      IF(R8.NE.0)GO TO 302
04700	      	MOVE  	02,R8    
04800	      	JUMPN 	02,302P  
04900	
05000	;				15500	C  JUMP TO MAKE BOX
05100	
05200	;				15600	      R6=RHORZ(R6)
05300	      	JSA   	16,RHORZ 
     

00400	      	ARG   	02,R6    
00500	      	MOVEM 	00,R6    
00600	
00700	;				15700	      IF(R7)GO TO 301
00800	      	MOVE  	02,R7    
00900	      	JUMPL 	02,301P  
01000	
01100	;				15800	      RJ=R6
01200	      	MOVE  	02,R6    
01300	      	MOVEM 	02,ALF+=11    
01400	
01500	;				15900	      R6=R3Q
01600	      	MOVE  	02,ALF+5   
01700	      	MOVEM 	02,R6    
01800	
01900	;				16000	301   CALL LINX(RJ,ALF+=8+RA,R6,ALF+=8)
02000	301P  	MOVE  	02,BM    
02100	      	FADR  	02,ALF+=8    
02200	      	MOVEM 	02,%TEMP.
02300	      	JSA   	16,ALF+=12INX  
02400	      	ARG   	02,ALF+=11    
02500	      	ARG   	02,%TEMP.
02600	      	ARG   	02,R6    
02700	      	ARG   	02,ALF+=8    
02800	
02900	;				16100	      CALL LINES(RJ,ALF+=8-RA,2)
03000	      	MOVN  	02,BM    
03100	      	FADR  	02,ALF+=8    
03200	      	MOVEM 	02,%TEMP.
03300	      	JSA   	16,ALF+=12INES 
03400	      	ARG   	02,ALF+=11    
03500	      	ARG   	02,%TEMP.
03600	      	ARG   	00,CONST.+5
03700	
03800	;				16200	C FOR CRESC, DECRESC:4 POS1, STF, HGT, 50, POS1, +OR-N(0=2.3,-1=-2.3)
03900	
04000	;				16300	CC	IF(PLT.NE.-2)RETURN
04100	
04200	;				16400	      IF(PLT.GE.0)RETURN
04300	      	MOVE  	02,PLT   
04400	      	JUMPL 	02,13M   
04500	      	JRST  	8M    
04600	13M   	BLOCK	0
04700	
04800	;				16500	C  THIS MAKES ALL CRESC. DBL THICKNESS AT PRINT TIME.
04900	
05000	;				16600	      IF(J8)RETURN
05100	      	MOVE  	02,J8    
05200	      	JUMPGE	02,14M   
05300	      	JRST  	8M    
     

00400	14M   	BLOCK	0
00500	
00600	;				16700	      RX=RX+1./DIS
00700	      	MOVSI 	02,201400
00800	      	FDVR  	02,DIS   
00900	      	FADRM 	02,ALF+=8    
01000	
01100	;				16800	      J8=-1
01200	      	SETOM 	J8    
01300	
01400	;				16900	C FOR DOUBLE THICKNESS
01500	
01600	;				17000	      GO TO 301
01700	      	JRST  	301P  
01800	
01900	;				17100	
02000	
02100	;				17200	302   R8=R8*RST7
02200	302P  	MOVE  	02,ALF+3  
02300	      	FMPRM 	02,R8    
02400	
02500	;				17300	      R9=R9*RST7
02600	      	MOVE  	02,ALF+3  
02700	      	FMPRM 	02,R9    
02800	
02900	;				17400	      IF(R9.EQ.0)R9=R8
03000	      	MOVE  	02,R9    
03100	      	JUMPN 	02,15M   
03200	      	MOVE  	02,R8    
03300	      	MOVEM 	02,R9    
03400	15M   	BLOCK	0
03500	
03600	;				17500	C  R9=0 MAKES SQUARE
03700	
03800	;				17600	      R3=R3Q-R8/2.
03900	      	MOVE  	02,R8    
04000	      	FSC   	02,777777
04100	      	FSBR  	02,ALF+5   
04200	      	MOVNM 	02,.COMM.+4    
04300	
04400	;				17700	      RX=RX-R9/2.
04500	      	MOVE  	02,R9    
04600	      	FSC   	02,777777
04700	      	FSBRM 	02,ALF+=8    
04800	      	MOVNS 	00,ALF+=8    
04900	
05000	;				17710	      RY=RX
05100	      	MOVE  	02,ALF+=8    
05200	      	MOVEM 	02,RY    
     

00400	;				17720	      IF(R11.NE.0)RY=RY+R11*RST7
00500	      	MOVE  	02,R11   
00600	      	JUMPE 	02,16M   
00700	      	MOVE  	02,ALF+3  
00800	      	FMPR  	02,R11   
00900	      	FADRM 	02,RY    
01000	16M   	BLOCK	0
01100	
01200	;				17730	C R11 IS OFFSET FOR PARALLELAGRAM
01300	
01400	;				17800	      J10=J10
01500	
01600	;				17900	C  DRAWS BOX, CENTER IS IN MIDDLE
01700	
01800	;				18000	C  4,POSI+=9,STF,NT#,50,0,0,,SIZ1↑BY NT#S↑,SIZ2
01900	
02000	;				18100	1302  CALL LINX(R3,ALF+=8,.COMM.+4+R8,RY)
02100	1302P 	MOVE  	02,.COMM.+4    
02200	      	FADR  	02,R8    
02300	      	MOVEM 	02,%TEMP.
02400	      	JSA   	16,ALF+=12INX  
02500	      	ARG   	02,.COMM.+4    
02600	      	ARG   	02,ALF+=8    
02700	      	ARG   	02,%TEMP.
02800	      	ARG   	02,RY    
02900	
03000	;				18200	      CALL LINES(R3+R8,RY+R9,2)
03100	      	MOVE  	02,.COMM.+4    
03200	      	FADR  	02,R8    
03300	      	MOVEM 	02,%TEMP.
03400	      	MOVE  	03,RY    
03500	      	FADR  	03,R9    
03600	      	MOVEM 	03,%TEMP.+1
03700	      	JSA   	16,ALF+=12INES 
03800	      	ARG   	02,%TEMP.
03900	      	ARG   	02,%TEMP.+1
04000	      	ARG   	00,CONST.+5
04100	
04200	;				18300	      CALL LINES(R3,ALF+=8+R9,2)
04300	      	MOVE  	02,ALF+=8    
04400	      	FADR  	02,R9    
04500	      	MOVEM 	02,%TEMP.
04600	      	JSA   	16,ALF+=12INES 
04700	      	ARG   	02,.COMM.+4    
04800	      	ARG   	02,%TEMP.
04900	      	ARG   	00,CONST.+5
05000	
05100	;				18400	      CALL LINES(R3,ALF+=8,2)
05200	      	JSA   	16,ALF+=12INES 
05300	      	ARG   	02,.COMM.+4    
     

00400	      	ARG   	02,ALF+=8    
00500	      	ARG   	00,CONST.+5
00600	
00700	;				18500	      IF(J10.EQ.0)RETURN
00800	      	MOVE  	02,J10   
00900	      	JUMPN 	02,17M   
01000	      	JRST  	8M    
01100	17M   	BLOCK	0
01200	
01300	;				18600	      J10=J10-1
01400	      	SOS   	J10   
01500	
01600	;				18700	      RJ=1./DIS
01700	      	MOVSI 	02,201400
01800	      	FDVR  	02,DIS   
01900	      	MOVEM 	02,ALF+=11    
02000	
02100	;				18800	      R3=R3-RJ
02200	      	MOVN  	02,ALF+=11    
02300	      	FADRM 	02,.COMM.+4    
02400	
02500	;				18900	      R8=R8+RJ+RJ
02600	      	MOVE  	02,ALF+=11    
02700	      	FADR  	02,ALF+=11    
02800	      	FADRM 	02,R8    
02900	
03000	;				19000	      RX=RX-RJ
03100	      	MOVN  	02,ALF+=11    
03200	      	FADRM 	02,ALF+=8    
03300	
03400	;				19010	      RY=RY-RJ
03500	      	MOVN  	02,ALF+=11    
03600	      	FADRM 	02,RY    
03700	
03800	;				19100	      R9=R9+RJ+RJ
03900	      	MOVE  	02,ALF+=11    
04000	      	FADR  	02,ALF+=11    
04100	      	FADRM 	02,R9    
04200	
04300	;				19200	      GO TO 1302
04400	      	JRST  	1302P 
04500	
04600	;				19300	C  TO THICKEN BOXES.
04700	
04800	;				19400	
04900	
05000	;				19500	1401  R4=2.0
05100	1I401 	MOVSI 	02,202400
05200	      	MOVEM 	02,.COMM.+5    
     

00400	;				19600	C FOR HEAVY BRACK.
00500	
00600	;				19700	      RA=RSTJ2*RBX
00700	      	MOVE  	02,RBX   
00800	      	FMPR  	02,STF+=8 
00900	      	MOVEM 	02,BM    
01000	
01100	;				19800	      RX=RX-RA
01200	      	MOVN  	02,BM    
01300	      	FADRM 	02,ALF+=8    
01400	
01500	;				19900	C  THE BOTTOM
01600	
01700	;				20000	      L=J4+J2-1
01800	      	MOVNI 	02,1
01900	      	ADD   	02,.COMM.+=25    
02000	      	ADD   	02,J2    
02100	      	MOVEM 	02,ALF+=12     
02200	
02300	;				20100	      R6=RTF
02400	      	MOVE  	02,[3.0]   
02500	      	MOVEM 	02,R6    
02600	
02700	;				20200	      IF(L.LE.4)GO TO 4401
02800	      	MOVEI 	02,4
02900	      	CAML  	02,ALF+=12     
03000	      	JRST  	4I401 
03100	
03200	;				20300	      L=4
03300	      	MOVEI 	02,4
03400	      	MOVEM 	02,ALF+=12     
03500	
03600	;				20400	      R6=300.
03700	      	MOVSI 	02,211454
03800	      	MOVEM 	02,R6    
03900	
04000	;				20500	4401  RA=STFF(L)
04100	4I401 	MOVE  	03,ALF+=12     
04200	      	MOVE  	02,STFF  +3(3)
04300	      	MOVEM 	02,BM    
04400	
04500	;				20600	C SAVE FOR POS. OF BRACK. END ON UPPER STAFF.
04600	
04700	;				20700	      RJY=RSTFAC(L)
04800	      	MOVE  	03,ALF+=12     
04900	      	MOVE  	02,RSTFAC+3(3)
05000	      	MOVEM 	02,ALF+=11Y   
05100	
05200	;				20800	      RY=RA+R6*RJY+RJY*56.+RJY*RBX
05300	      	MOVE  	02,R6    
     

00400	      	FMPR  	02,ALF+=11Y   
00500	      	FADR  	02,BM    
00600	      	MOVSI 	03,206700
00700	      	FMPR  	03,ALF+=11Y   
00800	      	FADR  	02,3
00900	      	MOVE  	03,RBX   
01000	      	FMPR  	03,ALF+=11Y   
01100	      	FADR  	02,3
01200	      	MOVEM 	02,RY    
01300	
01400	;				20900	C  THE TOP
01500	
01600	;				21000	      R5=9.5
01700	      	MOVSI 	02,204460
01800	      	MOVEM 	02,.COMM.+6    
01900	
02000	;				21100	      GO TO 2401
02100	      	JRST  	2I401 
02200	
02300	;				21200	
02400	
02500	;				21300	C  DASHES
02600	
02700	;				21400	401   POS=POS-RST18
02800	I401: 	MOVN  	02,ALF+4 
02900	      	FADRM 	02,POSI+=9   
03000	
03100	;				21500	C********* 27/9/72 ******
03200	
03300	;				21600	      IF(J7.LE.0)GO TO 407
03400	      	MOVE  	02,.COMM.+=28    
03500	      	JUMPLE	02,407P  
03600	
03700	;				21700	      IF(J7.EQ.4)GO TO 1401
03800	      	MOVEI 	02,4
03900	      	CAMN  	02,.COMM.+=28    
04000	      	JRST  	1I401 
04100	
04200	;				21800	      IF(J7.NE.3)GO TO 4001
04300	      	MOVEI 	02,3
04400	      	CAME  	02,.COMM.+=28    
04500	      	JRST  	4001P 
04600	
04700	;				21900	C  NEXT IS FOR VARIABLE LARGE BRACKET. P7=3 P10=THICK. P5=HGT P6=P3
04800	
04900	;				22000	2401  JA=3
05000	2I401 	MOVEI 	02,3
05100	      	MOVEM 	02,.COMM.+1    
05200	
05300	;				22100	      IF(J10.EQ.0)J10=5
     

00400	      	MOVE  	02,J10   
00500	      	JUMPN 	02,18M   
00600	      	MOVEI 	02,5
00700	      	MOVEM 	02,J10   
00800	18M   	BLOCK	0
00900	
01000	;				22200	C  DEFAULT VALUE FOR THICKNESS =5
01100	
01200	;				22300	      R4=R4-RBR
01300	      	MOVN  	02,RBR   
01400	      	FADRM 	02,.COMM.+5    
01500	
01600	;				22400	      J9=0
01700	      	SETZM 	J9    
01800	
01900	;				22500	      J5=35
02000	      	MOVEI 	02,43
02100	      	MOVEM 	02,.COMM.+=26    
02200	
02300	;				22600	C  THE NUM FOR THE LITTLE END ITEMS
02400	
02500	;				22700	CC	RY=R6-2.1*RSTJ2
02600	
02700	;				22800	      R6=3
02800	      	MOVSI 	02,202600
02900	      	MOVEM 	02,R6    
03000	
03100	;				22900	      R7=0
03200	      	SETZM 	R7    
03300	
03400	;				23000	C DOES LOWER ONE FIRST.  ITEM IS IN 'CLEF3.DMD' ON DAT.LCS
03500	
03600	;				23100	      IF(J8.NE.2)CALL CLEFS
03700	      	MOVEI 	02,2
03800	      	CAMN  	02,J8    
03900	      	JRST  	19M   
04000	      	JSA   	16,CLEFS 
04100	19M   	BLOCK	0
04200	
04300	;				23200	C P8=1=BOTTOM 1/2 BRACK. ONLY:  =2=TOP 1/2 ONLY:  0=COMPLETE
04400	
04500	;				23300	      R4=R5-RBR
04600	      	MOVN  	02,RBR   
04700	      	FADR  	02,.COMM.+6    
04800	      	MOVEM 	02,.COMM.+5    
04900	
05000	;				23400	      R6=3
05100	      	MOVSI 	02,202600
05200	      	MOVEM 	02,R6    
     

00400	;				23500	      R7=-3
00500	      	MOVSI 	02,575200
00600	      	MOVEM 	02,R7    
00700	
00800	;				23600	C  TURNS IT UPSIDE DOWN.
00900	
01000	;				23700	CC	JA=3
01100	
01200	;				23800	      IF(J7.NE.4)GO TO 3401
01300	      	MOVEI 	02,4
01400	      	CAME  	02,.COMM.+=28    
01500	      	JRST  	3I401 
01600	
01700	;				23900	      POS=RA
01800	      	MOVE  	02,BM    
01900	      	MOVEM 	02,POSI+=9   
02000	
02100	;				24000	      R4=R4*RJY/RSTJ2
02200	      	MOVE  	02,.COMM.+5    
02300	      	FMPR  	02,ALF+=11Y   
02400	      	FDVR  	02,STF+=8 
02500	      	MOVEM 	02,.COMM.+5    
02600	
02700	;				24100	C  TO ADJUST HEIGHT OF BRACK END WHEN STAVES ARE DIFF. SIZES.
02800	
02900	;				24200	3401  IF(J8.NE.1)CALL CLEFS
03000	3I401 	MOVEI 	02,1
03100	      	CAMN  	02,J8    
03200	      	JRST  	20M   
03300	      	JSA   	16,CLEFS 
03400	20M   	BLOCK	0
03500	
03600	;				24300	      R3Q=R3Q-12.0*RSTJ2
03700	      	MOVSI 	02,204600
03800	      	FMPR  	02,STF+=8 
03900	      	FSBRM 	02,ALF+5   
04000	      	MOVNS 	00,ALF+5   
04100	
04200	;				24400	      IF(J7.NE.4)GO TO 407
04300	      	MOVEI 	02,4
04400	      	CAME  	02,.COMM.+=28    
04500	      	JRST  	407P  
04600	
04700	;				24500	      J7=0
04800	      	SETZM 	J7    
04900	
05000	;				24600	      GO TO 140
05100	      	JRST  	140P  
05200	
     

00500	;				24800	4002  J5=4
00600	4002P 	MOVEI 	02,4
00700	      	MOVEM 	02,.COMM.+=26    
00800	
00900	;				24900	C FOR CURVY BRACKET.  P6 CAN CHANGE WIDTH.
01000	
01100	;				25000	      R8=0
01200	      	SETZM 	R8    
01300	
01400	;				25100	      J4=J4+J2-1
01500	      	MOVNI 	02,1
01600	      	ADD   	02,.COMM.+=25    
01700	      	ADD   	02,J2    
01800	      	MOVEM 	02,.COMM.+=25    
01900	
02000	;				25200	      R7=(.3136*RSTFAC(J4)+.0056*(STFF(J4)-STFF(J2)))/RSTJ2
02100	      	MOVE  	02,CONST.+7
02200	      	MOVE  	03,.COMM.+=25    
02300	      	FMPR  	02,RSTFAC+3(3)
02400	      	MOVE  	04,STFF  +3(3)
02500	      	MOVE  	03,J2    
02600	      	FSBR  	04,STFF  +3(3)
02700	      	FMPR  	04,CONST.+10
02800	      	FADR  	02,4
02900	      	FDVR  	02,STF+=8 
03000	      	MOVEM 	02,R7    
03100	
03200	;				25300	C  .0056=.0392/7.(THE MAGIC NUM FOR VERT SIZE OF BRACK.) .3136=8*.0392
03300	
03400	;				25400	C  ADD DIST BETWEEN BOTTOM OF STAVES TO HEIGHT OF TOP STAFF
03500	
03600	;				25500	      IF(R6.EQ.0)R6=1.+R7/20.
03700	      	MOVE  	02,R6    
03800	      	JUMPN 	02,21M   
03900	      	MOVE  	02,R7    
04000	      	FDVR  	02,CONST.+11
04100	      	FADRI 	02,201400
04200	      	MOVEM 	02,R6    
04300	21M   	BLOCK	0
04400	
04500	;				25600	      JA=3
04600	      	MOVEI 	02,3
04700	      	MOVEM 	02,.COMM.+1    
04800	
04900	;				25700	      R4=2.3
05000	      	MOVE  	02,CONST.+6
05100	      	MOVEM 	02,.COMM.+5    
05200	
05300	;				25800	C  C  BECAUSE BRACK DOESN'T REALLY GO UP FROM 0 ?!?X*↑
     

00500	;				25900	      CALL CLEFS
00600	      	JSA   	16,CLEFS 
00700	
00800	;				26000	      RETURN
00900	      	JRST  	8M    
01000	
01100	;				26100	
01200	
01300	;				26200	4001  IF(J7.EQ.5)GO TO 4002
01400	4001P 	MOVEI 	02,5
01500	      	CAMN  	02,.COMM.+=28    
01600	      	JRST  	4002P 
01700	
01800	;				26300	      IF(R8.EQ.0)R8=.8
01900	      	MOVE  	02,R8    
02000	      	JUMPN 	02,22M   
02100	      	MOVE  	02,CONST.+12
02200	      	MOVEM 	02,R8    
02300	22M   	BLOCK	0
02400	
02500	;				26400	C  P8 CAN SET SIZE OF DASH
02600	
02700	;				26402	      RZ=5.96*RSTJ2
02800	      	MOVE  	02,CONST.+13
02900	      	FMPR  	02,STF+=8 
03000	      	MOVEM 	02,ALF+=18    
03100	
03200	;				26405	      RJ=R8*RZ
03300	      	MOVE  	02,ALF+=18    
03400	      	FMPR  	02,R8    
03500	      	MOVEM 	02,ALF+=11    
03600	
03700	;				26410	      RZ=R9*RZ
03800	      	MOVE  	02,R9    
03900	      	FMPRM 	02,ALF+=18    
04000	
04100	;				26420	      IF(R9.EQ.0)RZ=RJ
04200	      	MOVE  	02,R9    
04300	      	JUMPN 	02,23M   
04400	      	MOVE  	02,ALF+=11    
04500	      	MOVEM 	02,ALF+=18    
04600	23M   	BLOCK	0
04700	
04800	;				26430	C  P9 SETS SPACE BETWEEN DASHES. (CAN BE DIFFERENT FROM P8)
04900	
05000	;				26440	      R8=RJ
05100	      	MOVE  	02,ALF+=11    
05200	      	MOVEM 	02,R8    
     

00400	;				26450	      R9=RZ
00500	      	MOVE  	02,ALF+=18    
00600	      	MOVEM 	02,R9    
00700	
00800	;				26500	      RD=RD+POS
00900	      	MOVE  	02,POSI+=9   
01000	      	FADRM 	02,ALF+7    
01100	
01200	;				26600	      RJX=RD
01300	      	MOVE  	02,ALF+7    
01400	      	MOVEM 	02,ALF+=11X   
01500	
01600	;				26700	C =1 =DASHES,  P6=P3=VERTICAL; P4=P5=HORIZ.; OTHERWISE SLOPE.
01700	
01800	;				26800	      J6=ROFF(RHORZ(R6))
01900	      	JSA   	16,RHORZ 
02000	      	ARG   	02,R6    
02100	      	MOVEM 	00,%TEMP.
02200	      	JSA   	16,ROFF  
02300	      	ARG   	02,%TEMP.
02400	      	MOVEM 	00,%TEMP.+1
02500	      	JSA   	16,IFIX  
02600	      	ARG   	00,%TEMP.+1
02700	      	MOVEM 	00,J6    
02800	
02900	;				26900	      J3=J6-J3
03000	      	MOVN  	02,J6    
03100	      	ADDM  	02,J3    
03200	      	MOVNS 	00,J3    
03300	
03400	;				27000	      J4=J5-J4
03500	      	MOVN  	02,.COMM.+=26    
03600	      	ADDM  	02,.COMM.+=25    
03700	      	MOVNS 	00,.COMM.+=25    
03800	
03900	;				27100	      RJY=RD
04000	      	MOVE  	02,ALF+7    
04100	      	MOVEM 	02,ALF+=11Y   
04200	
04300	;				27200	C SAVE FOR THICK LINES
04400	
04500	;				27300	      RA=J6
04600	      	JSA   	16,FLOAT 
04700	      	ARG   	00,J6    
04800	      	MOVEM 	00,BM    
04900	
05000	;				27400	C RA IS HORIZ. GOAL FOR DASHES
05100	
05200	;				27500	402   RY=POS+R5*RST7
05300	402P  	MOVE  	02,ALF+3  
     

00400	      	FMPR  	02,.COMM.+6    
00500	      	FADR  	02,POSI+=9   
00600	      	MOVEM 	02,RY    
00700	
00800	;				27600	      IF(J4.EQ.0)GO TO 41
00900	      	MOVE  	02,.COMM.+=25    
01000	      	JUMPE 	02,41P   
01100	
01200	;				27700	      RH=RY-RD
01300	      	MOVN  	02,ALF+7    
01400	      	FADR  	02,RY    
01500	      	MOVEM 	02,RH    
01600	
01700	;				27800	C TOTAL HEIGHT DIFF.
01800	
01900	;				27900	      RX=RA-R3
02000	      	MOVN  	02,.COMM.+4    
02100	      	FADR  	02,BM    
02200	      	MOVEM 	02,ALF+=8    
02300	
02400	;				28000	C TOTAL LENGTH DIFF.
02500	
02600	;				28100	      RH=RH/RX
02700	      	MOVE  	02,RH    
02800	      	FDVR  	02,ALF+=8    
02900	      	MOVEM 	02,RH    
03000	
03100	;				28200	41    L=3
03200	41P   	MOVEI 	02,3
03300	      	MOVEM 	02,ALF+=12     
03400	
03500	;				28300	      K=2
03600	      	MOVEI 	02,2
03700	      	MOVEM 	02,K     
03800	
03900	;				28400	416   CALL LINES(R3Q,ALF+7,ALF+=12)
04000	416P  	JSA   	16,ALF+=12INES 
04100	      	ARG   	02,ALF+5   
04200	      	ARG   	02,ALF+7    
04300	      	ARG   	00,ALF+=12     
04400	
04500	;				28405	      IF(J3.EQ.0)GO TO 412
04600	      	MOVE  	02,J3    
04700	      	JUMPE 	02,412P  
04800	
04900	;				28407	C  JUMP FOR VERT. DASH
05000	
05100	;				28410	      IF(J3.GT.0)GO TO 422
05200	      	MOVE  	02,J3    
05300	      	JUMPG 	02,422P  
     

00500	;				28420	      IF(R3Q.LE.RA)GO TO 413
00600	      	MOVE  	02,ALF+5   
00700	      	CAMG  	02,BM    
00800	      	JRST  	413P  
00900	
01000	;				28425	C THIS IF P6 IS LESS THAN P3
01100	
01200	;				28430	      R3Q=R3Q-RJ
01300	      	MOVN  	02,ALF+=11    
01400	      	FADRM 	02,ALF+5   
01500	
01600	;				28440	      GO TO 423
01700	      	JRST  	423P  
01800	
01900	;				28500	422   IF(R3Q.GE.RA)GO TO 413
02000	422P  	MOVE  	02,ALF+5   
02100	      	CAML  	02,BM    
02200	      	JRST  	413P  
02300	
02400	;				28600	C  JUMP IF ALL DONE
02500	
02600	;				28700	      R3Q=R3Q+RJ
02700	      	MOVE  	02,ALF+=11    
02800	      	FADRM 	02,ALF+5   
02900	
03000	;				28710	423   IF(J4.NE.0)RD=RJY+RH*(R3Q-R3)
03100	423P  	MOVE  	02,.COMM.+=25    
03200	      	JUMPE 	02,24M   
03300	      	MOVE  	02,ALF+5   
03400	      	FSBR  	02,.COMM.+4    
03500	      	FMPR  	02,RH    
03600	      	FADR  	02,ALF+=11Y   
03700	      	MOVEM 	02,ALF+7    
03800	24M   	BLOCK	0
03900	
04000	;				28720	C  FINDS HEIGHT OF RIGHT SIDE OF SLOPE
04100	
04200	;				28800	414   CALL EXCH(L,K)
04300	414P  	JSA   	16,EXCH  
04400	      	ARG   	00,ALF+=12     
04500	      	ARG   	00,K     
04600	
04700	;				28810	      CALL EXCH(RJ,ALF+=18)
04800	      	JSA   	16,EXCH  
04900	      	ARG   	02,ALF+=11    
05000	      	ARG   	02,ALF+=18    
05100	
05200	;				28820	C  EXCH. SPACE AND DASH SIZE.
     

00400	;				28900	      GO TO 416
00500	      	JRST  	416P  
00600	
00700	;				28950	412   IF(J4.GT.0)GO TO 424
00800	412P  	MOVE  	02,.COMM.+=25    
00900	      	JUMPG 	02,424P  
01000	
01100	;				28960	      IF(RD.LE.RY)GO TO 413
01200	      	MOVE  	02,ALF+7    
01300	      	CAMG  	02,RY    
01400	      	JRST  	413P  
01500	
01600	;				28970	      RD=RD-RJ
01700	      	MOVN  	02,ALF+=11    
01800	      	FADRM 	02,ALF+7    
01900	
02000	;				28980	C  THIS IF P5 IS LESS THAN P4.
02100	
02200	;				28990	      GO TO 414
02300	      	JRST  	414P  
02400	
02500	;				29000	424   IF(RD.GE.RY)GO TO 413
02600	424P  	MOVE  	02,ALF+7    
02700	      	CAML  	02,RY    
02800	      	JRST  	413P  
02900	
03000	;				29100	C  JUMP IF DONE
03100	
03200	;				29200	      RD=RD+RJ
03300	      	MOVE  	02,ALF+=11    
03400	      	FADRM 	02,ALF+7    
03500	
03600	;				29300	      GO TO 414
03700	      	JRST  	414P  
03800	
03900	;				29400	413   IF(J10.GT.0)GO TO 420
04000	413P  	MOVE  	02,J10   
04100	      	JUMPG 	02,420P  
04200	
04300	;				29410	      IF(J11.EQ.0)RETURN
04400	      	MOVE  	02,J11   
04500	      	JUMPN 	02,25M   
04600	      	JRST  	8M    
04700	25M   	BLOCK	0
04800	
04900	;				29415	      IF(J3)RJ=-RJ
05000	      	MOVE  	02,J3    
05100	      	JUMPGE	02,26M   
05200	      	MOVNS 	00,ALF+=11    
05300	26M   	BLOCK	0
     

00500	;				29420	      IF(L.EQ.3)R3Q=R3Q-RJ
00600	      	MOVEI 	02,3
00700	      	CAME  	02,ALF+=12     
00800	      	JRST  	27M   
00900	      	MOVN  	02,ALF+=11    
01000	      	FADRM 	02,ALF+5   
01100	27M   	BLOCK	0
01200	
01300	;				29430	      RX=R8
01400	      	MOVE  	02,R8    
01500	      	MOVEM 	02,ALF+=8    
01600	
01700	;				29440	      IF(J11)RX=-RX
01800	      	MOVE  	02,J11   
01900	      	JUMPGE	02,28M   
02000	      	MOVNS 	00,ALF+=8    
02100	28M   	BLOCK	0
02200	
02300	;				29450	      CALL LINX(R3Q,ALF+7,ALF+5,ALF+7+RX)
02400	      	MOVE  	02,ALF+7    
02500	      	FADR  	02,ALF+=8    
02600	      	MOVEM 	02,%TEMP.
02700	      	JSA   	16,ALF+=12INX  
02800	      	ARG   	02,ALF+5   
02900	      	ARG   	02,ALF+7    
03000	      	ARG   	02,ALF+5   
03100	      	ARG   	02,%TEMP.
03200	
03300	;				29460	C PUTS BRACK END ON DASHED LINE. (P11=1 OR -1)
03400	
03500	;				29470	      RETURN
03600	      	JRST  	8M    
03700	
03800	;				29480	
03900	
04000	;				29500	C  NEXT FOR THICK DASHES
04100	
04200	;				29600	420   J10=J10-1
04300	420P  	SOS   	J10   
04400	
04500	;				29650	      RJ=1./DIS
04600	      	MOVSI 	02,201400
04700	      	FDVR  	02,DIS   
04800	      	MOVEM 	02,ALF+=11    
04900	
05000	;				29700	      IF(J3.EQ.0)GO TO 415
05100	      	MOVE  	02,J3    
05200	      	JUMPE 	02,415P  
     

00400	;				29800	      R3Q=R3
00500	      	MOVE  	02,.COMM.+4    
00600	      	MOVEM 	02,ALF+5   
00700	
00800	;				29900	      RJY=RJY+RJ
00900	      	MOVE  	02,ALF+=11    
01000	      	FADRM 	02,ALF+=11Y   
01100	
01200	;				29950	      RD=RJY
01300	      	MOVE  	02,ALF+=11Y   
01400	      	MOVEM 	02,ALF+7    
01500	
01600	;				30000	      GO TO 417
01700	      	JRST  	417P  
01800	
01900	;				30100	415   R3Q=R3Q+RJ
02000	415P  	MOVE  	02,ALF+=11    
02100	      	FADRM 	02,ALF+5   
02200	
02300	;				30200	      RD=RJX
02400	      	MOVE  	02,ALF+=11X   
02500	      	MOVEM 	02,ALF+7    
02600	
02700	;				30210	417   RJ=R8
02800	417P  	MOVE  	02,R8    
02900	      	MOVEM 	02,ALF+=11    
03000	
03100	;				30220	      RZ=R9
03200	      	MOVE  	02,R9    
03300	      	MOVEM 	02,ALF+=18    
03400	
03500	;				30230	C  FOR THICK DASHES.
03600	
03700	;				30300	      GO TO 41
03800	      	JRST  	41P   
03900	
04000	;				30400	
04100	
04200	;				30500	
04300	
04400	;				30600	407   RX=RD+POS
04500	407P  	MOVE  	02,ALF+7    
04600	      	FADR  	02,POSI+=9   
04700	      	MOVEM 	02,ALF+=8    
04800	
04900	;				30700	      RY=R5*RST7+POS
05000	      	MOVE  	02,ALF+3  
05100	      	FMPR  	02,.COMM.+6    
05200	      	FADR  	02,POSI+=9   
05300	      	MOVEM 	02,RY    
     

00500	;				30800	      IF(J7.EQ.3)GO TO 140
00600	      	MOVEI 	02,3
00700	      	CAMN  	02,.COMM.+=28    
00800	      	JRST  	140P  
00900	
01000	;				30900	      CALL NOZERO(R9)
01100	      	JSA   	16,NOZERO
01200	      	ARG   	02,R9    
01300	
01400	;				31000	      IF(J7.EQ.-1)GO TO 408
01500	      	MOVNI 	02,1
01600	      	CAMN  	02,.COMM.+=28    
01700	      	JRST  	408P  
01800	
01900	;				31100	C  FOR 'TR' J7=-2, 'ARPEGG' J7=-1,  STRAIGHT LINES J7=0
02000	
02100	;				31200	CC  WHY THE IFIX????	RJX=IFIX(RHORZ(R6))
02200	
02300	;				31300	      RJX=IFIX(ROFF(RHORZ(R6)))
02400	      	JSA   	16,RHORZ 
02500	      	ARG   	02,R6    
02600	      	MOVEM 	00,%TEMP.
02700	      	JSA   	16,ROFF  
02800	      	ARG   	02,%TEMP.
02900	      	MOVEM 	00,%TEMP.+1
03000	      	JSA   	16,IFIX  
03100	      	ARG   	02,%TEMP.+1
03200	      	MOVEM 	00,%TEMP.+2
03300	      	JSA   	16,FLOAT 
03400	      	ARG   	00,%TEMP.+2
03500	      	MOVEM 	00,ALF+=11X   
03600	
03700	;				31400	C  ALL THIS CRAP SO IT WILL MATCH UP WITH P3 WHEN NECESSARY.
03800	
03900	;				31500	      IF(J7.EQ.0)GO TO 42
04000	      	MOVE  	02,.COMM.+=28    
04100	      	JUMPE 	02,42P   
04200	
04300	;				31600	      RY=R9*RST7+RX
04400	      	MOVE  	02,ALF+3  
04500	      	FMPR  	02,R9    
04600	      	FADR  	02,ALF+=8    
04700	      	MOVEM 	02,RY    
04800	
04900	;				31700	      CALL NOZERO(R8)
05000	      	JSA   	16,NOZERO
05100	      	ARG   	02,R8    
05200	
05300	;				31800	4041  RZ=RX
     

00400	4041P 	MOVE  	02,ALF+=8    
00500	      	MOVEM 	02,ALF+=18    
00600	
00700	;				31900	      RH=RY
00800	      	MOVE  	02,RY    
00900	      	MOVEM 	02,RH    
01000	
01100	;				32000	C  SAVE FOR THICK WIGGLES
01200	
01300	;				32100	      CALL LINES(R3Q,ALF+=8,3)
01400	      	JSA   	16,ALF+=12INES 
01500	      	ARG   	02,ALF+5   
01600	      	ARG   	02,ALF+=8    
01700	      	ARG   	00,CONST.+3
01800	
01900	;				32200	C  DRAWS STRAIGHT LINES. ETC.
02000	
02100	;				32300	      R9=R3Q
02200	      	MOVE  	02,ALF+5   
02300	      	MOVEM 	02,R9    
02400	
02500	;				32400	      RJ=RY
02600	      	MOVE  	02,RY    
02700	      	MOVEM 	02,ALF+=11    
02800	
02900	;				32500	      RW=3.*RSTJ2*R8
03000	      	MOVSI 	02,202600
03100	      	FMPR  	02,STF+=8 
03200	      	FMPR  	02,R8    
03300	      	MOVEM 	02,RW    
03400	
03500	;				32600	      RA=RW*2.5
03600	      	MOVSI 	02,202500
03700	      	FMPR  	02,RW    
03800	      	MOVEM 	02,BM    
03900	
04000	;				32700	C  P8=HORZ. WIGGLE SIZE;  P9=VERT. SIZE
04100	
04200	;				32800	404   R9=R9+RA
04300	404P  	MOVE  	02,BM    
04400	      	FADRM 	02,R9    
04500	
04600	;				32900	      CALL LINES(R9,ALF+=11,2)
04700	      	JSA   	16,ALF+=12INES 
04800	      	ARG   	02,R9    
04900	      	ARG   	02,ALF+=11    
05000	      	ARG   	00,CONST.+5
05100	
05200	;				33000	      R9=R9+RW
05300	      	MOVE  	02,RW    
     

00400	      	FADRM 	02,R9    
00500	
00600	;				33100	      CALL LINES(R9,ALF+=11,2)
00700	      	JSA   	16,ALF+=12INES 
00800	      	ARG   	02,R9    
00900	      	ARG   	02,ALF+=11    
01000	      	ARG   	00,CONST.+5
01100	
01200	;				33200	405   CALL EXCH(RX,ALF+=11)
01300	405P  	JSA   	16,EXCH  
01400	      	ARG   	02,ALF+=8    
01500	      	ARG   	02,ALF+=11    
01600	
01700	;				33300	      IF(R9.LT.RJX)GO TO 404
01800	      	MOVE  	02,ALF+=11X   
01900	      	CAMLE 	02,R9    
02000	      	JRST  	404P  
02100	
02200	;				33400	      IF(J10.LE.0)RETURN
02300	      	MOVE  	02,J10   
02400	      	JUMPG 	02,29M   
02500	      	JRST  	8M    
02600	29M   	BLOCK	0
02700	
02800	;				33450	      RY=1./DIS
02900	      	MOVSI 	02,201400
03000	      	FDVR  	02,DIS   
03100	      	MOVEM 	02,RY    
03200	
03300	;				33500	      RX=RZ+RY
03400	      	MOVE  	02,ALF+=18    
03500	      	FADR  	02,RY    
03600	      	MOVEM 	02,ALF+=8    
03700	
03800	;				33600	      RY=RH+RY
03900	      	MOVE  	02,RH    
04000	      	FADRM 	02,RY    
04100	
04200	;				33700	      J10=J10-1
04300	      	SOS   	J10   
04400	
04500	;				33800	      GO TO 4041
04600	      	JRST  	4041P 
04700	
04800	;				33900	C  P10= + NUM OF THICKNESSES TO WIGGLE
04900	
05000	;				34000	
05100	
05200	;				34100	408   IF(RX.GT.RY)CALL EXCH(RX,RY)
05300	408P  	MOVE  	02,ALF+=8    
     

00400	      	CAMG  	02,RY    
00500	      	JRST  	30M   
00600	      	JSA   	16,EXCH  
00700	      	ARG   	02,ALF+=8    
00800	      	ARG   	02,RY    
00900	30M   	BLOCK	0
01000	
01100	;				34200	      RZ=R9*RSTJ2*5.96
01200	      	MOVE  	02,STF+=8 
01300	      	FMPR  	02,R9    
01400	      	FMPR  	02,CONST.+13
01500	      	MOVEM 	02,ALF+=18    
01600	
01700	;				34300	C  USE P9 TO SET WIGGLE WIDTH.  P8 TO SET HGT.
01800	
01900	;				34400	      CALL NOZERO(R8)
02000	      	JSA   	16,NOZERO
02100	      	ARG   	02,R8    
02200	
02300	;				34500	      RD=R8*RST7*.5
02400	      	MOVE  	02,ALF+3  
02500	      	FMPR  	02,R8    
02600	      	FSC   	02,777777
02700	      	MOVEM 	02,ALF+7    
02800	
02900	;				34600	      RJ=RD
03000	      	MOVE  	02,ALF+7    
03100	      	MOVEM 	02,ALF+=11    
03200	
03300	;				34700	      IF(RD.LT.1.)RD=1.
03400	      	MOVSI 	02,201400
03500	      	CAMG  	02,ALF+7    
03600	      	JRST  	31M   
03700	      	MOVSI 	02,201400
03800	      	MOVEM 	02,ALF+7    
03900	31M   	BLOCK	0
04000	
04100	;				34800	421   R9=RX
04200	421P  	MOVE  	02,ALF+=8    
04300	      	MOVEM 	02,R9    
04400	
04500	;				34900	      RW=R3Q
04600	      	MOVE  	02,ALF+5   
04700	      	MOVEM 	02,RW    
04800	
04900	;				35000	      RA=RZ+R3Q
05000	      	MOVE  	02,ALF+5   
05100	      	FADR  	02,ALF+=18    
05200	      	MOVEM 	02,BM    
     

00400	;				35100	CALL LINES(RW,R9,3)
00500	      	JSA   	16,ALF+=12INES 
00600	      	ARG   	02,RW    
00700	      	ARG   	02,R9    
00800	      	ARG   	00,CONST.+3
00900	
01000	;				35200	410   R9=R9+RJ
01100	410P  	MOVE  	02,ALF+=11    
01200	      	FADRM 	02,R9    
01300	
01400	;				35300	      CALL LINES(RA,R9,2)
01500	      	JSA   	16,ALF+=12INES 
01600	      	ARG   	02,BM    
01700	      	ARG   	02,R9    
01800	      	ARG   	00,CONST.+5
01900	
02000	;				35400	      R9=R9+RD
02100	      	MOVE  	02,ALF+7    
02200	      	FADRM 	02,R9    
02300	
02400	;				35500	      CALL LINES(RA,R9,2)
02500	      	JSA   	16,ALF+=12INES 
02600	      	ARG   	02,BM    
02700	      	ARG   	02,R9    
02800	      	ARG   	00,CONST.+5
02900	
03000	;				35600	      CALL EXCH(RA,RW)
03100	      	JSA   	16,EXCH  
03200	      	ARG   	02,BM    
03300	      	ARG   	02,RW    
03400	
03500	;				35700	      IF(R9.LT.RY)GO TO 410
03600	      	MOVE  	02,RY    
03700	      	CAMLE 	02,R9    
03800	      	JRST  	410P  
03900	
04000	;				35800	      IF(J10.LE.0)RETURN
04100	      	MOVE  	02,J10   
04200	      	JUMPG 	02,32M   
04300	      	JRST  	8M    
04400	32M   	BLOCK	0
04500	
04600	;				35900	      R3Q=R3Q+1./DIS
04700	      	MOVSI 	02,201400
04800	      	FDVR  	02,DIS   
04900	      	FADRM 	02,ALF+5   
05000	
05100	;				36000	      J10=J10-1
05200	      	SOS   	J10   
     

00400	;				36100	      GO TO 421
00500	      	JRST  	421P  
00600	
00700	;				36200	C  VERTICAL WIGGLE   P10=+ NUM OF THICKNESSES.
00800	
00900	;				36300	      END
01000	
01100	      	JRST  	8M    
01200	ITMSU%	ARG   	00,0
01300	      	MOVEM 	15,TEMP. +1
01400	      	MOVEM 	16,TEMP. +2
01500	      	JRST  	1M    
01600	8M    	MOVE  	15,TEMP. +1
01700	      	MOVE  	16,TEMP. +2
01800	      	JRA   	16,0(16)
01900